package model;

import controller.EndGameObserver;
import controller.GridPicturesObserver;
import controller.InfoBarObserver;
import controller.LevelNameObserver;
import controller.PauseObserver;

public interface GameModelInterface {
	public LevelModel getLevel();

	public int getLife();

	public Integer[] getPictures();

	public int getScore();

	public int getTime();

	void pause();

	void registerObserver(EndGameObserver observer);

	void registerObserver(GridPicturesObserver observer);

	void registerObserver(InfoBarObserver observer);

	void registerObserver(LevelNameObserver observer);

	void registerObserver(PauseObserver observer);

	void removeObserver(EndGameObserver observer);

	void removeObserver(GridPicturesObserver observer);

	void removeObserver(InfoBarObserver observer);

	void removeObserver(LevelNameObserver observer);

	void removeObserver(PauseObserver observer);

	void start();

	void touch(int position);

	public void win();

	public void lose();

	public void update();

}
